#ifndef SHAPES_H_
#define SHAPES_H_

#include "math/math.h"

namespace physicsworks {

using math::vec3;
using math::mat3;

struct Sphere {
	vec3 center;
	real radius;
};

/**
 * Axis-Aligned Cube.
 */
struct AACube {
	vec3 center;
	real radius;
};

/**
 * Axis-Aligned Box.
 */
struct AABox {
	vec3 min;
	vec3 max;
	
	/**
	 * Translates and rotates the box, growing up the box. It's useful when the box
	 * encapsulates a set of vertices that is being transformed.
	 */
	AABox& transform(const vec3& position, const mat3& orientation);
};

}

#endif /*SHAPES_H_*/
